Introduction
One major obstacle of teaching and learning computable general equilibrium (CGE) model is the gap between the analytical solution of simple GE model from micro-economic courses, and the numerical solution of much more complex models used in research. In the PhD program, students have learnt how to build simple GE models from utility and production functions and solve the model analytically with pen and paper. However, those models are simplified for educational purpose. When students begin to consider modelling a real-world problem, it usually does not take long for them to find that kind of model is usually too complex to have an analytical solution. I believe this gap is at least part of the reason, that although many students have learnt GE modeling, they seldom continue to work on it and add it to their skillset upon graduation.
This note aims to provide complete and detailed instructions of the flow from level form equations and analytical solutions (what students already learnt) to linearized form equations for numerical solution, which will be solved with programming language in complex CGE models. I first introduce a simple "1-2-2 (one consumer, two sectors (commodities), two inputs (factors)" GE model from Fullerton et al., (2017) (with modification by author) and solve it analytically in the way students are familiar with from micro-economic courses. Then introduce how to use linearization to solve the model as a linearized system, to be solved numerically with software. Finally, I discuss how this simple "1-2-2" model represents more complex CGE models, for example the GTAP model.
By the end of this note, students will recognize the connection between analytical solution and linearized system of the same GE model and are ready to transfer they knowledge on GE from micro-economic courses to understanding, and eventually developing, CGE models to research real-world issues.
Model setting
In this section, we first summarize the basic setting of the "1-2-2" GE model. The research question is how a production tax influences the economy. The features of this model are listed below:
- Single region model
- Two sectors X and Y
- Two inputs K and L: capital and labor
- In each sector, there is one producer who has a Cobb-Douglas (C-D) production function. The C-D function indicates there is no corner solution (K or L = 0)
,
- Each input has fixed total endowment
,
- Consider a tax rate
applied to the producer of sector X. Which means when the market price of X is
, the price to producer is
. And the tax revenue R equals
- One representative consumer, who also has a C-D utility function
- The consumer's income comes from providing inputs, and receiving tax revenue R
Analytical solution
To solve the model analytically, we need:
- First solve the producers' and consumer's problems to get the conditional demand of inputs and outputs
- Then solve the entire model with general equilibrium closure
For producer X, the problem is to minimize production cost, with the constraint that its supply must satisfy the demand of X

Where s.t. refers to "subject to"
Solve the model for conditional demand of K and L, we have:
(1) 
(2)
Similarly, for producer Y, we have:
(3) 
(4)
For the consumer, the problem is to maximize utility, with the constraint that the total cost spent on consumption must be smaller than the total income

s.t.
Solve the model for optimal demand of X and Y, we have:
(5) 
(6)
From model setting, we have the equation of income formation
(7)
From model closure, we have market clear conditions (supply = demand) for inputs K and L:
Note: the market clear conditions for output X and Y are already satisfied in the constraint of producers' problem.
(8) 
(9)
Also, from model closure we have the zero profit condition for sectors X and Y:
(10) 
(11)
Now we have a system of 11 endogenous variables (
) and 11 equations (1-11), which allow us to solve the general equilibrium model analytically. We also have eight exogenous variables (
) that allow us to conduct some counter-factual simulation (what if the value of exogenous variables are different).
Here we apply the Walras's law and set the price of capital
as numeraire, or
. In that case, the price of other input and commodities should be considered as the relative price with respect to
. So, one equation is not necessary to solve the model, and we can use it to check if the solution is incorrect.
With pen and paper, we can solve the model manually and have analytical solutions for all endogenous variables as functions of exogenous variables. For example, the analytical solutions for income I, price of labor
, and output quantity of X are listed below, which allow us to simulate the impact of tax rate change on income, price and output.
(12) 
(13) 
(14)
However, it can take considerable time and efforts to obtain those analytical solutions (to get this point, you can solve the model analytically on your own as an exercise), despite both the model setting (the "1-2-2" structure) and the functional form (C-D) are already very simple. Also, the analytical solution can have very complex forms. If we would like to build and solve a model to research real-world problems, for example using the newly released GTAP 11 database with 65 sectors and 141 countries (Aguiar et al., 2023), just image how much time and efforts it will take to solve the model analytically and how long the final solution would be. One important reason of the difficulty of solving this model is that it contains many non-linear equations. That is why we will seek an alternative approach to solve GE models, by regarding the model as a system of linearized equations.
Linearized system
To solve the challenge of non-linear equations, we can convert the original equations in level form of variables to percentage change form of variables, which is called linearization. Correspondingly, the percentage change form is also denoted as linearized form.
Take the output level of X as an example. Holding other exogenous variables constant, if we increase the tax rate from 0.30 to 0.31, we can calculate the quantity level of X before and after the tax rate change, denoted as
and
respectively with equation (14). Then:
and
are the level form of output X, equation (14) is the level form of X's solution- The percentage change from
and
, denoted as
, is the linearized form of output X in response to tax rate increase
Note: in this note, we always use the uppercase to represent variables' level form and use lowercase to represent variables' linearized form.
The mathematical foundation of linearization is based on:
- total derivative of functions:

- equation of percentage change:


Fortunately, Gibson (2018) has summarized the linearization rule for common cases, which I will apply directly to perform the linearization of this "1-2-2" model. In this example, we linearized equations (1 - 11) by converting all endogenous variables and
to their percentage change form, while the percentage change of other exogenous variables are zero since they will not change.
The original level form equations (1-11):
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
The linearized forms (1'-11'):
(1') 
(2') 
(3') 
(4') 
(5') 
(6') 
(7') 
(8') 
(9') 
(10') 
(11')
At first glance, the linearized equation system (1'-11') becomes even more complex then the original system (1-11). However, if we now use the percentage change form (in lowercase) of variables to replace level form (uppercase) variables, then the system (1'-11') becomes a fully linearized system, that in each equation, all variables are represented with the linear combination of other variables. And the linearized system has a very important feature, that it can be represented in the matrix form
, where:
- A is a n by n matrix (n is the number of endogenous variables, here n = 11), whose elements come from baseline value of endogenous and exogenous variables
- x is a n by 1 vector, whose elements are percentage change form of endogenous variables
- b is a n by 1 vector, whose elements comes from percentage change form of exogenous variables
When the linearized system is written in matrix form
, then we can solve the model easily with linear algebra
, which modern computers are very good at. By linearization, we can avoid the messy work to solve complex non-linear system to find analytical solutions and obtain the percentage change of endogenous variables easily.
Note: the procedure of solving this 1-2-2 model with linearized form is available in the supplementary material. Similar with the analytical solution, we set Based
as numeraire so
, and drop equation (7') based on Walras's law.
One thing worth attention is that the linearization process requires the percentage change to be small. The reason is that the total derivative requires the change of variables (dX, dY, dZ) to be tiny. But in real-world analyses, we may need to research the impact of large percentage change of exogenous variables. When solving models with GEMPACK, it will automatically separate the large percentage change to a series of small percentage changes and solve the linearized system repeatedly. But there is nothing different between the linearization approach in our example above and the actual solution procedure in GEMPACK.
Reference
Aguiar, Angel, et al. "The global trade analysis project (GTAP) data base: Version 11." Journal of Global Economic Analysis 7.2 (2022).
Fullerton, Don, and Chi L. Ta. "Public finance in a nutshell: A cobb Douglas teaching tool for general equilibrium tax incidence and excess burden." National Tax Journal 70.1 (2017): 155-170.
Gibson, Bill. "Check your understanding: Hat Calculus". (2018). https://www.uvm.edu/~wgibson/CYU/CYU_hats.pdf